const { ListNode, LinkedList } = require('../2. 链表/1. 链表基础/1. 建立线性链表.js')
// 给定一个链表的头节点head，以及一个整数k
// 要求返回链表的倒数第k个节点

// 思路，快慢指针
// 快指针先走k步，然后快慢指针同时走，当快指针走完的时候，慢指针正好到了倒数第k个节点

function getKthFromEnd(head, k) {
    let slow = head
    let fast = head
    while (k--) {
        // 边界判断
        if (!fast) {
            return null
        }
        fast = fast.next
    }
    while (fast) {
        fast = fast.next
        slow = slow.next
    }
    return slow
}

let node = new LinkedList([1,2,3,4,5,6])
console.log(getKthFromEnd(node.head, 4))